**Apache Airflow version**: 2.0.1


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

**Environment**:

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

**What happened**:

Airflow fails to schedule any tasks after some time. The "Task Instance Details" tab of some of the failed tasks show the following: 

```
('Not scheduling since there are %s open slots in pool %s and require %s pool slots', -3, 'transformation', 3)
```

Admin > Pools tab shows 0 Running Slots but 9 Queued Slots. Gets stuck in this state until airflow is restarted.

**What you expected to happen**:

Number of "open slots in pool" should never be negative! 

**How to reproduce it**:
- Create/configure a pool with a small size (eg. 6)
- DAG with multiple tasks occupying multiple pool_slots (eg. pool_slots=3)


**Anything else we need to know**:

tests/models/test_pool.py
set_default_pool_slots(5)
        assert 5 == Pool.get_default_pool().open_slots()
        dag = DAG(
            dag_id='test_default_pool_open_slots',
            start_date=DEFAULT_DATE,
        )
        op1 = DummyOperator(task_id='dummy1', dag=dag)
        op2 = DummyOperator(task_id='dummy2', dag=dag, pool_slots=2)
        ti1 = TI(task=op1, execution_date=DEFAULT_DATE)
        ti2 = TI(task=op2, execution_date=DEFAULT_DATE)
        ti1.state = State.RUNNING
        ti2.state = State.QUEUED
        session = settings.Session
        session.add(ti1)
        session.add(ti2)
        session.commit()
        session.close()
        assert 2 == Pool.get_default_pool().open_slots()