¿Cómo crear un generador asíncrono en Python?

Estoy tratando de reescribir este código Python2.7 al nuevo orden mundial asíncrono:

def get_api_results(func, iterable):
    pool = multiprocessing.Pool(5)
    for res in pool.map(func, iterable):
        yield res

map() bloquea hasta que se hayan calculado todos los resultados, por lo que estoy tratando de reescribir esto como una implementación asincrónica que arrojará resultados tan pronto como estén listos. Me gustamap(), los valores devueltos deben devolverse en el mismo orden queiterable. Intenté esto (necesitorequests debido a los requisitos de autenticación heredados):

import requests

def get(i):
    r = requests.get('https://example.com/api/items/%s' % i)
    return i, r.json()

async def get_api_results():
    loop = asyncio.get_event_loop()
    futures = []
    for n in range(1, 11):
        futures.append(loop.run_in_executor(None, get, n))
    async for f in futures:
        k, v = await f
        yield k, v

for r in get_api_results():
    print(r)

pero con Python 3.6 obtengo:

  File "scratch.py", line 16, in <module>
    for r in get_api_results():
TypeError: 'async_generator' object is not iterable

¿Cómo puedo lograr esto?