It is a misconception that "an" precedes words that start with a vowel. Rather, it is used before words that start with a vowel sound. Union has a pronunciation that is something like "ˈyoōnyən." The initial sound is that is a "y", not a "u". The opposite is true for words like "honor" (änər), which do not have the sound of an "h".