## SPOILER ##

You still **CANNOT** check for "source" trigger collider that triggers OnTriggerEnter, at least today or what I know at the time of writing (2020).  But there is workaround.

## For your racing game case ##
(This is 4 years after, you probably finished and mastered your cool racing game :). But I will include a specific answer to your question here, since it is manner for SO site, but I will keep it brief.)

Your racing game case is more trivial, since `OnTriggerEnter( Collider other )` offers information on other side, you could identify checkpoint in some way, such as its name "Checkpoint1". Store and process it on your racing car player object so that it run once.

## For detecting trigger source ##

Now the fun part. First, you need to understand nature of how physics engine call those events. I recommend to skim over this official document also:
https://docs.unity3d.com/Manual/CollidersOverview.html

The following are not stated in document but they are from what I observed:

- If 2 triggers are on same game object, it acts as **compound colliders**. OnTrigger*** will called once.
- If each trigger is on different game object, such as parent-child (OP's case) it is composite case. OnTrigger*** will called once for each. But if for example, child object does not have script for it, it will **"bubble up"** to rigidbody, if exists in parent node. Thus appear as second call on script attached to rigidbody's level.

In both way, you still wont be able to know source trigger, because all events lead to one `OnTriggerEnter( Collider other )` which provide no such information at all. 

You need to distribute relay/satellite scripts to each trigger collider. Some example or discussion, see:

https://forum.unity.com/threads/checking-for-a-specific-collider-solved.815118/

This way you can detect source of trigger collider. Application such as detecting head shot, leg shot, arm shot is now possible.