As you have guessed, there is an option to set number of runs. The DAG class has a parameter to limit number of active runs named max_active_runs. Here is where you can specify the number of concurrent dagruns that can be in the running state.
Here is an example to showcase the parameter in use.
from airflow.models import DAG
dag = DAG(
schedule_interval='*/15 * * * *',
The example here is a DAG that is scheduled every 15 minutes. If your DAG takes two hours to run, airflow will not schedule another one until the current one finishes. Also note that catchup is set as True meaning that the dagrun will have the execution date following the current execution date according to the schedule interval.
More concretely, this means that if the current dagrun has an execution date of
2020-01-01T00:00:00+00:00, the next dagrun will have the execution date of