def start(self, subthread=True):
        """Starts the loop

        Tries to start the loop. Raises RuntimeError if the loop is currently running.

        :param subthread: True/False value that specifies whether or not to start the loop within a subthread. If True
        the threading.Thread object is found in Loop._loop_thread.
        """
        if self.is_running():
            raise RuntimeError('Loop is currently running')
        else:
            self._lock.clear()
            self._stop_signal = False  # just in case
            self._in_subthread = subthread
            if subthread:
                self._loop_thread = threading.Thread(target=self._loop,
                                                     args=self.args,
                                                     kwargs=self.kwargs)
                self._loop_thread.start()
            else:
                self._loop(*self.args, **self.kwargs)
Starts the loop

        Tries to start the loop. Raises RuntimeError if the loop is currently running.

        :param subthread: True/False value that specifies whether or not to start the loop within a subthread. If True
        the threading.Thread object is found in Loop._loop_thread.