
**Apache Airflow version**: 2.0.0b3


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

**Environment**: MacOS with Docker

- **Cloud provider or hardware configuration**:
- **OS** (e.g. from /etc/os-release):
- **Kernel** (e.g. `uname -a`):
- **Install tools**:
- **Others**:

**What happened**:

```
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/airflow/models/taskinstance.py", line 984, in _run_raw_task
    result = task_copy.execute(context=context)
  File "/usr/local/airflow/plugins/custom_trigger_operator.py", line 138, in execute
    dag_run.execution_date,
UnboundLocalError: local variable 'dag_run' referenced before assignment
```

**What you expected to happen**:

The dag_run object doesn't exist in https://github.com/apache/airflow/blob/94ba200d42403d1067a63e2e6b158d893c2e8b5a/airflow/operators/dagrun_operator.py#L161
as the DagRunAlreadyExists exception is raised

**How to reproduce it**:

```
first_task = DummyOperator(...)

trigger_task = TriggerDagRunOperator(...
reset_dag_run=True,
wait_for_completion=True,
trigger_dag_id='my_dag_to_trigger'
...)

```
Run the DAG above once. It success. Clear the task first_task to run a second time the DAG and so trigger again my_dag_to_trigger, you will get the error.

**Anything else we need to know**:

Nope

airflow/operators/dagrun_operator.py
self,
        *,
        trigger_dag_id: str,
        conf: Optional[Dict] = None,
        execution_date: Optional[Union[str, datetime.datetime]] = None,
        reset_dag_run: bool = False,
        wait_for_completion: bool = False,
        poke_interval: int = 60,
        allowed_states: Optional[List] = None,
        failed_states: Optional[List] = None,
        **kwargs,
    ) -> None:
        super().__init__(**kwargs)
        self.trigger_dag_id = trigger_dag_id
        self.conf = conf
        self.reset_dag_run = reset_dag_run
        self.wait_for_completion = wait_for_completion
        self.poke_interval = poke_interval
        self.allowed_states = allowed_states or [State.SUCCESS]
        self.failed_states = failed_states or [State.FAILED]
        if not isinstance(execution_date, (str, datetime.datetime, type(None))):
            raise TypeError(
                "Expected str or datetime.datetime type for execution_date."
                "Got {}".format(type(execution_date))
            )
        self.execution_date: Optional[datetime.datetime] = execution_date  
    def execute(self, context: Dict):