docs: async def start_child():
      """
      Start the child process that will look for changes in modules.
      """
  
      logger.info('Started to watch for code changes')
  
      loop = asyncio.get_event_loop()
      watcher = aionotify.Watcher()
  
      flags = (
          aionotify.Flags.MODIFY |
          aionotify.Flags.DELETE |
          aionotify.Flags.ATTRIB |
          aionotify.Flags.MOVED_TO |
          aionotify.Flags.MOVED_FROM |
          aionotify.Flags.CREATE |
          aionotify.Flags.DELETE_SELF |
          aionotify.Flags.MOVE_SELF
      )
  
      watched_dirs = list_dirs()
  
      for dir_name in watched_dirs:
          watcher.watch(path=dir_name, flags=flags)
  
      await watcher.setup(loop)
  
      while True:
          evt = await watcher.get_event()
          file_path = path.join(evt.alias, evt.name)
  
          if file_path in watched_dirs or file_path.endswith('.py'):
              await asyncio.sleep(settings.CODE_RELOAD_DEBOUNCE)
              break
  
      watcher.close()
      exit_for_reload()