**Apache Airflow version**: 2.0.0a1
**Kubernetes version (if you are using kubernetes)** (use `kubectl version`): No kubernetes used.

**Environment**:

- **OS** (e.g. from /etc/os-release): MacOS

**What happened**:

After updating my local dev environment configuration for Airflow 2.0.0a1 I wanted to see if the database needed updating:

```
$ airflow db check
Traceback (most recent call last):
  File "/.../bin/airflow", line 8, in <module>
    sys.exit(main())
  File "/.../lib/python3.6/site-packages/airflow/__main__.py", line 40, in main
    args.func(args)
  File "/.../lib/python3.6/site-packages/airflow/cli/cli_parser.py", line 52, in command
    func = import_string(import_path)
  File "/.../lib/python3.6/site-packages/airflow/utils/module_loading.py", line 32, in import_string
    module = import_module(module_path)
  File "/.../lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/.../lib/python3.6/site-packages/airflow/cli/commands/db_command.py", line 24, in <module>
    from airflow.utils import cli as cli_utils, db
  File "/.../lib/python3.6/site-packages/airflow/utils/db.py", line 26, in <module>
    from airflow.jobs.base_job import BaseJob  # noqa: F401 # pylint: disable=unused-import
  File "/.../lib/python3.6/site-packages/airflow/jobs/__init__.py", line 22, in <module>
    import airflow.jobs.scheduler_job  # noqa
  File "/.../lib/python3.6/site-packages/airflow/jobs/scheduler_job.py", line 50, in <module>
    from airflow.models.serialized_dag import SerializedDagModel
  File "/.../lib/python3.6/site-packages/airflow/models/serialized_dag.py", line 35, in <module>
    from airflow.serialization.serialized_objects import SerializedDAG
  File "/.../lib/python3.6/site-packages/airflow/serialization/serialized_objects.py", line 37, in <module>
    from airflow.kubernetes.pod_generator import PodGenerator
  File "/.../lib/python3.6/site-packages/airflow/kubernetes/pod_generator.py", line 35, in <module>
    from kubernetes.client import models as k8s
ModuleNotFoundError: No module named 'kubernetes'
```

**What you expected to happen**:

`kubernetes` is an optional extra dependency, if it is not installed things should not break.

**How to reproduce it**:

This happens in a new setup, the following steps reproduce the issue:

```python
$ virtualenv -p python3.8 testenv
$ source testenv/bin/activate
$ pip install --find-links https://dist.apache.org/repos/dist/dev/airflow/2.0.0a1/ apache-airflow==2.0.0a1
$ airflow db check
```

airflow/serialization/serialized_objects.py
"""
    A JSON serializable representation of DAG.
    A stringified DAG can only be used in the scope of scheduler and webserver, because fields
    that are not serializable, such as functions and customer defined classes, are casted to
    strings.
    Compared with SimpleDAG: SerializedDAG contains all information for webserver.
    Compared with DagPickle: DagPickle contains all information for worker, but some DAGs are
    not pickle-able. SerializedDAG works for all DAGs.
    """
    _decorated_fields = {'schedule_interval', 'default_args', '_access_control'}
    @staticmethod
    def __get_constructor_defaults():