**Apache Airflow version**:
1.10.10

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

kubeenetes ver: 1.15.5

**Environment**:

- **Cloud provider or hardware configuration**: Used docker based Airflow Image
- **OS** (e.g. from /etc/os-release): Debian
- **Kernel** (e.g. `uname -a`): 4.19.76-linuxkit x86_64 Linux


**What happened**:

When user navigates to tree view of dag and keep on clicking on `Go` button at `number of runs` the` base date` cycle back to one dag run and in the end when there is no dag run left, it shows `invalid date`. In the end user gets below exception: 

```
                          ____/ (  (    )   )  \___
                         /( (  (  )   _    ))  )   )\
                       ((     (   )(    )  )   (   )  )
                     ((/  ( _(   )   (   _) ) (  () )  )
                    ( (  ( (_)   ((    (   )  .((_ ) .  )_
                   ( (  )    (      (  )    )   ) . ) (   )
                  (  (   (  (   ) (  _  ( _) ).  ) . ) ) ( )
                  ( (  (   ) (  )   (  ))     ) _)(   )  )  )
                 ( (  ( \ ) (    (_  ( ) ( )  )   ) )  )) ( )
                  (  (   (  (   (_ ( ) ( _    )  ) (  )  )   )
                 ( (  ( (  (  )     (_  )  ) )  _)   ) _( ( )
                  ((  (   )(    (     _    )   _) _(_ (  (_ )
                   (_((__(_(__(( ( ( |  ) ) ) )_))__))_)___)
                   ((__)        \\||lll|l||///          \_))
                            (   /(/ (  )  ) )\   )
                          (    ( ( ( | | ) ) )\   )
                           (   /(| / ( )) ) ) )) )
                         (     ( ((((_(|)_)))))     )
                          (      ||\(|(|)|/||     )
                        (        |(||(||)||||        )
                          (     //|/l|||)|\\ \     )
                        (/ / //  /|//||||\\  \ \  \ _)
-------------------------------------------------------------------------------
Node: c6059861e1e9
-------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pendulum/parsing/parser.py", line 352, in _parse
    yearfirst=self._options['year_first']
  File "/usr/local/lib/python3.7/site-packages/dateutil/parser/_parser.py", line 1374, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/dateutil/parser/_parser.py", line 649, in parse
    raise ParserError("Unknown string format: %s", timestr)
dateutil.parser._parser.ParserError: Unknown string format: Invalid date
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.7/site-packages/airflow/www_rbac/decorators.py", line 121, in wrapper
    return f(self, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/flask_appbuilder/security/decorators.py", line 109, in wraps
    return f(self, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/airflow/www_rbac/decorators.py", line 92, in view_func
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/airflow/www_rbac/decorators.py", line 56, in wrapper
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/airflow/utils/db.py", line 74, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/airflow/www_rbac/views.py", line 1406, in tree
    base_date = timezone.parse(base_date)
  File "/usr/local/lib/python3.7/site-packages/airflow/utils/timezone.py", line 180, in parse
    return pendulum.parse(string, tz=timezone or TIMEZONE)
  File "/usr/local/lib/python3.7/site-packages/pendulum/parser.py", line 75, in parse
    return Parser(**options).parse(text)
  File "/usr/local/lib/python3.7/site-packages/pendulum/parser.py", line 31, in parse
    parsed = super(Parser, self).parse(text)
  File "/usr/local/lib/python3.7/site-packages/pendulum/parsing/parser.py", line 297, in parse
    return self.normalize(self._parse(text))
  File "/usr/local/lib/python3.7/site-packages/pendulum/parsing/parser.py", line 355, in _parse
    raise ParserError('Invalid date string: {}'.format(text))
pendulum.parsing.exceptions.ParserError: Invalid date string: Invalid date
```

**What you expected to happen**:

User should not receive exception pendulum.parsing.exceptions.ParserError: Invalid date string: Invalid date 

**How to reproduce it**:

1. Create a sample dag/example dag with shorter scheduled interval 
2. Have 2-3 dag runs.
3. Navigate to tree view and click on `Go `button
4. Keep clicking on Go button till there are no dag runs remaining, you would get  `pendulum.parsing.exceptions.ParserError: Invalid date string: Invalid date `exception.

**Screenshot**:

![image](https://user-images.githubusercontent.com/60378152/93097661-78904d80-f6c3-11ea-8616-bf7ac5b17293.png)

![image](https://user-images.githubusercontent.com/60378152/93097682-81811f00-f6c3-11ea-941d-0e82e71f198a.png)

![image](https://user-images.githubusercontent.com/60378152/93097729-8e9e0e00-f6c3-11ea-884c-8ec6ba363fa4.png)


How often does this problem occur? Once? Every time etc?

Everytime


airflow/models/dag.py
:param orientation: Specify DAG orientation in graph view (LR, TB, RL, BT), default LR
    :type orientation: str
    :param catchup: Perform scheduler catchup (or only run latest)? Defaults to True
    :type catchup: bool
    :param on_failure_callback: A function to be called when a DagRun of this dag fails.
        A context dictionary is passed as a single parameter to this function.
    :type on_failure_callback: callable
    :param on_success_callback: Much like the ``on_failure_callback`` except
        that it is executed when the dag succeeds.
    :type on_success_callback: callable
    :param access_control: Specify optional DAG-level permissions, e.g.,
        "{'role1': {'can_read'}, 'role2': {'can_read', 'can_edit'}}"
    :type access_control: dict
    :param is_paused_upon_creation: Specifies if the dag is paused when created for the first time.
        If the dag exists already, this flag will be ignored. If this optional parameter
        is not specified, the global config setting will be used.
    :type is_paused_upon_creation: bool or None
    :param jinja_environment_kwargs: additional configuration options to be passed to Jinja
        ``Environment`` for template rendering
        **Example**: to avoid Jinja from removing a trailing newline from template strings ::
            DAG(dag_id='my-dag',
                jinja_environment_kwargs={
                    'keep_trailing_newline': True,
                    # some other jinja2 Environment options here
                }
            )
        **See**: `Jinja Environment documentation
        <https://jinja.palletsprojects.com/en/master/api/#jinja2.Environment>`_
    :type jinja_environment_kwargs: dict
    :param tags: List of tags to help filtering DAGS in the UI.