def start(self):
        '''Start the timer and store the start time, this can only be executed
        once per instance

        It returns the timer instance so it can be chained when instantiating
        the timer instance like this:
        ``timer = Timer('application_name').start()``'''
        assert self._start is None, (
            'Unable to start, the timer is already running')
        self._last = self._start = time.time()
        return self
Start the timer and store the start time, this can only be executed
        once per instance

        It returns the timer instance so it can be chained when instantiating
        the timer instance like this:
        ``timer = Timer('application_name').start()``