## Bug description
- See screenshot below (it's likely being processed in 3 workers at the same time).

![sc](https://user-images.githubusercontent.com/5864173/92016443-f6457800-ed17-11ea-9b7f-959a3306850e.png)


## Expected behavior
- We should receive the event only once.


## How to reproduce

1. View a user of recent creation with this event ([example](https://app.posthog.com/person/5fabb7b9-a36c-4419-af97-eea75960b2e4)) 

## Environment

- Cloud from PR #1508 

#### *Thank you* for your bug report – we love squashing them!

posthog/celery.py
sender.add_periodic_task(crontab(day_of_week="mon", hour=15), send_weekly_email_report.s())
    sender.add_periodic_task(crontab(day_of_week="fri"), clean_stale_partials.s())
    if not check_ee_enabled():
        sender.add_periodic_task(15 * 60, calculate_cohort.s(), name="debug")
        sender.add_periodic_task(600, check_cached_items.s(), name="check dashboard items")
    else:
        
        sender.add_periodic_task(120, clickhouse_lag.s(), name="clickhouse event table lag")
    if settings.ASYNC_EVENT_ACTION_MAPPING:
        sender.add_periodic_task(
            (60 * ACTION_EVENT_MAPPING_INTERVAL_MINUTES),
            calculate_event_action_mappings.s(),
            name="calculate event action mappings",
            expires=(60 * ACTION_EVENT_MAPPING_INTERVAL_MINUTES),
        )
@app.task(ignore_result=True)
def redis_heartbeat():
    get_client().set("POSTHOG_HEARTBEAT", int(time.time()))
@app.task(ignore_result=True)
def clickhouse_lag():
    if check_ee_enabled() and settings.EE_AVAILABLE:
        from ee.clickhouse.client import sync_execute
        QUERY = """select max(_timestamp) observed_ts, now() now_ts, now() - max(_timestamp) as lag from events;"""
        lag = sync_execute(QUERY)[0][2]
        g = statsd.Gauge("%s_posthog_celery" % (settings.STATSD_PREFIX,))
        g.send("clickhouse_even_table_lag_seconds", lag)
    else:
        pass
@app.task(ignore_result=True)
def redis_celery_queue_depth():