Setup the watching utilities, start the loop and load data a first
        time.

async def start(self, file_path, locale=None, kwargs=None):
        """
        Setup the watching utilities, start the loop and load data a first
        time.
        """

        self._file_path = os.path.realpath(file_path)
        self._locale = locale

        if kwargs:
            self._kwargs = kwargs

        if settings.I18N_LIVE_RELOAD:
            loop = asyncio.get_event_loop()

            self._running = True
            self._watcher = aionotify.Watcher()
            self._watcher.watch(
                path=os.path.dirname(self._file_path),
                flags=aionotify.Flags.MOVED_TO | aionotify.Flags.MODIFY,
            )
            await self._watcher.setup(loop)
            await self._load()

            loop.create_task(self._watch())
        else:
            await self._load()