title: asyncio.run fails when loop.run_until_complete works
body: <p>This code fails:</p>
  
  <pre><code>import asyncio
  from motor import motor_asyncio
  
  
  _client = motor_asyncio.AsyncIOMotorClient()
  _db = _client.db
  
  users = _db.users
  
  
  async def main():
      await users.create_index(
          'login',
          unique=True
      )
  
  
  if __name__ == '__main__':
      #loop = asyncio.get_event_loop()
      #loop.run_until_complete(main())
      asyncio.run(main())
  </code></pre>
  
  <p>With this error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "/home/sanyash/myrepos/TKP/db.py", line 21, in &lt;module&gt;
      asyncio.run(main())
    File "/usr/local/lib/python3.7/asyncio/runners.py", line 43, in run
      return loop.run_until_complete(main)
    File "/usr/local/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
      return future.result()
    File "/home/sanyash/myrepos/TKP/db.py", line 14, in main
      unique=True
  RuntimeError: Task &lt;Task pending coro=&lt;main() running at /home/sanyash/myrepos/TKP/db.py:14&gt; cb=[_run_until_complete_cb() at /usr/local/lib/python3.7/asyncio/base_events.py:158]&gt; got Future &lt;Future pending cb=[run_on_executor.&lt;locals&gt;._call_check_cancel() at /usr/local/lib/python3.7/motor/frameworks/asyncio/__init__.py:80]&gt; attached to a different loop
  </code></pre>
  
  <p>When I uncomment two lines with <code>loop</code> and comment <code>asyncio.run</code> it works well. What the matter? I thought <code>asyncio.run</code> is a shortcut for this two lines.</p>
  
  <p>The problem is something in the <code>motor_asyncio</code> implementation, because when I changed <code>main</code> to simple <code>return 42</code>, <code>asyncio.run</code> works well too.</p>