I always see some unexpected behavior when I use async code in python. For example I get a lot of RuntimeError: Event loop is closed after running this simple code. Can someone explain what I'm doing wrong?
from asyncio import run, wait
from datetime import datetime
import aiohttp
url = "https://api.giphy.com/v1/gifs/random?api_key=dc6zaTOxFJmzC&tag=cat"
start = datetime.now()
async def load(i):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as resp:
            pass
    print("Downloaded", i + 1, datetime.now() - start)
async def main():
    reqs = []
    for i in range(100):
        reqs.append(load(i))
    await wait(reqs)
run(main())
