**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)


airflow/models/dag.py
new_start = self.previous_schedule(last_start)
            if self.start_date:
                if new_start >= self.start_date:
                    self.start_date = new_start
            else:
                self.start_date = new_start
        next_run_date = None
        if not date_last_automated_dagrun:
            
            task_start_dates = [t.start_date for t in self.tasks if t.start_date]
            if task_start_dates:
                next_run_date = self.normalize_schedule(min(task_start_dates))
                self.log.debug("Next run date based on tasks %s", next_run_date)
        else:
            next_run_date = self.following_schedule(date_last_automated_dagrun)
        if date_last_automated_dagrun and next_run_date:
            while next_run_date <= date_last_automated_dagrun:
                next_run_date = self.following_schedule(next_run_date)
        
        if self.start_date:
            next_run_date = self.start_date if not next_run_date else max(next_run_date, self.start_date)
            if next_run_date == self.start_date:
                next_run_date = self.normalize_schedule(self.start_date)
            self.log.debug("Dag start date: %s. Next run date: %s", self.start_date, next_run_date)
        
        if next_run_date and self.end_date and next_run_date > self.end_date:
            return None
        
        
        task_end_dates = [t.end_date for t in self.tasks if t.end_date]