**Apache Airflow version**: 2.0.0


**Kubernetes version (if you are using kubernetes)** (use `kubectl version`): N/A

**Environment**: 

- **Cloud provider or hardware configuration**: local/aws
- **OS** (e.g. from /etc/os-release): Ubuntu 18.04.5 LTS
- **Kernel** (e.g. `uname -a`): 5.4.0-1032-aws
- **Install tools**: pip
- **Others**:

**What happened**:
I did a fresh Airflow 2.0.0 install. With this version, when I manually trigger a DAG, Airflow skips the next scheduled run.
<!-- (please include exact error messages if you can) -->

**What you expected to happen**:
Manual runs do not interfere with the scheduled runs prior to Airflow 2. 
<!-- What do you think went wrong? -->

**How to reproduce it**:
Create a simple hourly DAG. After enabling it and the initial run, run it manually. It shall skip the next hour. Below is an example, where the manual run with execution time of 08:17 causes the scheduled run with execution time of 08:00 to skip. 
![image](https://user-images.githubusercontent.com/26160471/103457719-c7193480-4d12-11eb-82cb-42efaedc9ef4.png)


tests/jobs/test_scheduler_job.py
job = SchedulerJob(None, heartrate=10, state=State.RUNNING)
        assert job.is_alive()
        job.latest_heartbeat = timezone.utcnow() - datetime.timedelta(seconds=20)
        assert job.is_alive()
        job.latest_heartbeat = timezone.utcnow() - datetime.timedelta(seconds=31)
        assert not job.is_alive()
        
        
        job.latest_heartbeat = timezone.utcnow() - datetime.timedelta(days=1)
        assert not job.is_alive()
        job.state = State.SUCCESS
        job.latest_heartbeat = timezone.utcnow() - datetime.timedelta(seconds=10)
        assert not job.is_alive(), "Completed jobs even with recent heartbeat should not be alive"
    def run_single_scheduler_loop_with_no_dags(self, dags_folder):
        """
        Utility function that runs a single scheduler loop without actually
        changing/scheduling any dags. This is useful to simulate the other side effects of
        running a scheduler loop, e.g. to see what parse errors there are in the
        dags_folder.
        :param dags_folder: the directory to traverse
        :type dags_folder: str
        """
        scheduler = SchedulerJob(
            executor=self.null_exec, num_times_parse_dags=1, subdir=os.path.join(dags_folder)
        )
        scheduler.heartrate = 0
        scheduler.run()
    @pytest.mark.quarantined
    def test_no_orphan_process_will_be_left(self):