title: RuntimeError: Task got Future <Future pending> attached to a different loop
body: <p>How to call async method which get event loop in main thread inside another async method in Quart?</p>
  
  <p>t.py</p>
  
  <pre><code>from telethon import TelegramClient, functions, types
  
  client2 = TelegramClient(sn, api_id, api_hash).start()
  
  async def create_contact():
      return await client2(functions.contacts.ImportContactsRequest([
          types.InputPhoneContact(0, '8', 'first_name', 'last_name')
      ]))
  </code></pre>
  
  <p>app.py</p>
  
  <pre><code>from quart import Quart, websocket,render_template,request
  import t2
  app = Quart(__name__)
  
  @app.route('/wa2tg')
  def wa2tg():
      return render_template('wa2tg.html',nm=request.args.get('nm',''))
  
  @app.websocket('/wa2tg2')
  async def wa2tg2():
      while True:
          data = await websocket.receive()
          await t2.create_contact()
  
  # Thread(target=tele.client2.run_until_disconnected).start()
  app.run(debug=1)        
  </code></pre>
  
  <p>Error:</p>
  
  <pre><code>Running on http://127.0.0.1:5000 (CTRL + C to quit)
  [2019-06-21 16:31:42,035] 127.0.0.1:51696 GET /wa2tg 1.1 200 553 12995
  [2019-06-21 16:31:42,486] 127.0.0.1:51698 GET /wa2tg2 1.1 101 - 999
  [2019-06-21 16:31:42,490] ERROR in app: Exception on websocket /wa2tg2
  Traceback (most recent call last):
    File "C:\Users\Smart\AppData\Local\Programs\Python\Python37-32\lib\site-packages\quart\app.py", line 1629, in handle_websocket
      return await self.full_dispatch_websocket(websocket_context)
    File "C:\Users\Smart\AppData\Local\Programs\Python\Python37-32\lib\site-packages\quart\app.py", line 1651, in full_dispatch_websocket
      result = await self.handle_user_exception(error)
    File "C:\Users\Smart\AppData\Local\Programs\Python\Python37-32\lib\site-packages\quart\app.py", line 948, in handle_user_exception
      raise error
    File "C:\Users\Smart\AppData\Local\Programs\Python\Python37-32\lib\site-packages\quart\app.py", line 1649, in full_dispatch_websocket
      result = await self.dispatch_websocket(websocket_context)
    File "C:\Users\Smart\AppData\Local\Programs\Python\Python37-32\lib\site-packages\quart\app.py", line 1694, in dispatch_websocket
      return await handler(**websocket_.view_args)
    File "D:\SmartBot\my_env\SmartBot\t.py", line 13, in wa2tg2
      await t2.create_contact()
    File "D:\SmartBot\my_env\SmartBot\t2.py", line 22, in create_contact
      types.InputPhoneContact(0, '8807328487', 'first_name', 'last_name')
    File "C:\Users\Smart\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telethon\client\users.py", line 60, in __call__
      result = await future
  RuntimeError: Task &lt;Task pending coro=&lt;ASGIWebsocketConnection.handle_websocket() running at C:\Users\Smart\AppData\Local\Programs\Python\Python37-32\lib\site-packages\quart\asgi.py:135&gt; cb=[_wait.&lt;locals&gt;._on_completion() at C:\Users\Smart\AppData\Local\Programs\Python\Python37-32\lib\asyncio\tasks.py:440]&gt; got Future &lt;Future pending&gt; attached to a different loop
  </code></pre>
  
  <p>How to pass event loop to quart? I tried to get the loop and set inside function but still got error</p>
  
  <pre><code>loop = asyncio.get_event_loop()
  @app.websocket('/wa2tg2')
  async def wa2tg2():
    while True:
      asyncio.set_event_loop(loop)
      data = await websocket.receive()
      await t2.create_contact()
  </code></pre>