<!--

Welcome to Apache Airflow!  For a smooth issue process, try to answer the following questions.
Don't worry if they're not all applicable; just try to include what you can :-)

If you need to include code snippets or logs, please put them in fenced code
blocks.  If they're super-long, please use the details tag like
<details><summary>super-long log</summary> lots of stuff </details>

Please delete these comment blocks before submitting the issue.

-->

**Description**

When using decorators to define dags, e.g. dag_1.py:

```python
from airflow.decorators import dag, task
from airflow.utils.dates import days_ago

DEFAULT_ARGS = {
    "owner": "airflow",
}


@task
def some_task():
    pass


@dag(
    default_args=DEFAULT_ARGS,
    schedule_interval=None,
    start_date=days_ago(2),
)
def my_dag():
    some_task()


DAG_1 = my_dag()

```

and

dag_2.py:

```python
from airflow.decorators import dag, task
from airflow.utils.dates import days_ago

DEFAULT_ARGS = {
    "owner": "airflow",
}


@task
def some_other_task():
    pass


@dag(
    default_args=DEFAULT_ARGS,
    schedule_interval=None,
    start_date=days_ago(2),
)
def my_dag():
    some_other_task()


DAG_2 = my_dag()

```

We have two different dags which have been written in isolation, but by sheer bad luck both define `my_dag()`. This seems fine for each file in isolation, but on the airflow UI, we only end up seeing one entry for `my_dag`, where it has picked up `dag_1.py` and ignored `dag_2.py`.

**Use case / motivation**

We currently end up with only one DAG showing up on the UI, and no indication as to why the other one hasn't appeared.

Suggestion: popup similar to 'DAG import error' to highlight what needs changing in one of the DAG files in order for both to show up ("DAG import error: duplicate dag names found - please review {duplicate files} and ensure all dag definitions are unique"?)

**Are you willing to submit a PR?**

No time to spare on this at present

**Related Issues**

I haven't found any related issues with the search function.
airflow/models/dagbag.py
from airflow.models.dag import DAG  
        is_zipfile = zipfile.is_zipfile(filepath)
        top_level_dags = [o for m in mods for o in list(m.__dict__.values()) if isinstance(o, DAG)]
        found_dags = []
        for dag in top_level_dags:
            if not dag.full_filepath:
                dag.full_filepath = filepath
                if dag.fileloc != filepath and not is_zipfile:
                    dag.fileloc = filepath
            try:
                dag.is_subdag = False
                if isinstance(dag.normalized_schedule_interval, str):
                    croniter(dag.normalized_schedule_interval)
                self.bag_dag(dag=dag, root_dag=dag)
                found_dags.append(dag)
                found_dags += dag.subdags
            except (CroniterBadCronError, CroniterBadDateError, CroniterNotAlphaError) as cron_e:
                self.log.exception("Failed to bag_dag: %s", dag.full_filepath)
                self.import_errors[dag.full_filepath] = f"Invalid Cron expression: {cron_e}"
                self.file_last_changed[dag.full_filepath] = file_last_changed_on_disk
            except (AirflowDagCycleException, AirflowClusterPolicyViolation) as exception:
                self.log.exception("Failed to bag_dag: %s", dag.full_filepath)
                self.import_errors[dag.full_filepath] = str(exception)
                self.file_last_changed[dag.full_filepath] = file_last_changed_on_disk
        return found_dags
    def bag_dag(self, dag, root_dag):